package Practica03;

import java.awt.FlowLayout;
import java.awt.GraphicsEnvironment;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Eje04{
	
	public static void main(String[] arg){
		JFVentana04 v = new JFVentana04();
		v.Inicio();
	}
	
}

class JFVentana04 extends JFrame{

	private int flag;
	
	private JLabel lblEdad;
	private JLabel lblAltura;
	
	private JTextField txtEdad;
	private JTextField txtAltura;
	
	private JButton btnIniciar;
	
	private static final long serialVersionUID = 1L;
	
	public JFVentana04(){
		super("Sistema");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setLayout(new BoxLayout(getContentPane(), BoxLayout.PAGE_AXIS));
		
		JPanel p1,p2,p3;
		p1=new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p2=new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p3=new JPanel(new FlowLayout(FlowLayout.RIGHT));
		
		lblEdad= new JLabel("Edad:");
		lblAltura= new JLabel("Altura:");
		
		txtEdad = new JTextField(20);
		txtAltura = new JTextField(20);
		
		btnIniciar=new JButton("Comprobar edad");
		btnIniciar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				switch(flag){
				case 1:
					ValidarEdada();
					break;
				case 2:
					ValidarAltura();
					break;				
				default:
					break;
				}
				
			}
		});

		p1.add(lblEdad);
		p1.add(txtEdad);
		
		p2.add(lblAltura);
		p2.add(txtAltura);
		
		p3.add(btnIniciar);
		
		add(p1);
		add(p2);
		add(p3);
		
		lblAltura.setVisible(false);
		txtAltura.setVisible(false);
		flag=1;
	}
	
	private void ValidarEdada(){
		try{
			if(Integer.parseInt(txtEdad.getText())>=18)
			{
				txtEdad.setEditable(false);
				lblAltura.setVisible(true);
				txtAltura.setVisible(true);
				btnIniciar.setText("Comprobar Altura");
				pack();
				flag=2;										
			}
			else
			{
				JOptionPane.showMessageDialog(this, "Ud. es menor de edad -- ACCESO DENEGADO.", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
			}
		}catch(NumberFormatException nfe){
			JOptionPane.showMessageDialog(this, "Ingrese una edad valida.", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
		}
		
	}
	
	private void ValidarAltura(){
		try{
			if(Double.parseDouble(txtAltura.getText())<1.85){
				JOptionPane.showMessageDialog(this, "Esta dentro de la estatura permitida.","Mensaje", JOptionPane.INFORMATION_MESSAGE);
				Reinicar();
				}
			else{
				JOptionPane.showMessageDialog(this, "Es demasiado alto para el sitema.","Mensaje", JOptionPane.INFORMATION_MESSAGE);
				Reinicar();
				}
		}catch(NumberFormatException nfe){
			JOptionPane.showMessageDialog(this, "Ingrese una altura valida.","Mensaje", JOptionPane.INFORMATION_MESSAGE);
		}
	}
	
	private void Reinicar(){
		txtEdad.setEditable(true);
		txtEdad.setText("");
		lblAltura.setVisible(false);
		txtAltura.setText("");
		txtAltura.setVisible(false);
		btnIniciar.setText("Comprobar edad");
		pack();
		flag=1;
	}
	
	public void Inicio(){
		pack();
		setResizable(false);
		
		GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
		Point pt = ge.getCenterPoint();
		
		setLocation(pt.x-250, pt.y-150);
		setVisible(true);
	}
}